iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 18
0
自我挑戰組

我的語言自學接力系列 第 18

D18:[Java]例外類別 Throwable(基本觀念)

  • 分享至 

  • xImage
  •  

於D15~D17:「例外」該主題開始,使用的範例中提到 java.lang.ArrayIndexOutOfBoundsException
例外類別,那麼本篇將列出較常見的一些例外類別:
繼承來自java.lang.Throwable 類別的 兩大類, java.lang.Errorjava.lang.Exception

Error 是用來處理會嚴重影響程式的錯誤,所以我們不會去捕捉這類的錯誤。
Exception 為一些較一般的例外,而且我們可以做適當的處理使程式繼續執行。

http://ithelp.ithome.com.tw/upload/images/20161206/20103312xO7zZMHIQp.png

有趣的是,如果拋出的例外是 RuntiomeException 類別,或是其下方的子類別,
就算不撰寫例外處理的程式敘述,依然是可以 編譯成功。 (如「例外」該主題開始,使用的範例)

相反的,如果拋出為 IOException 是必須撰寫例外處理的程式敘述。


所以當例外發生,catch() 接收 Throwable 子類別產生的物件。
在[Java]例外處理 exception handing(範例實作)文末提到了

catch(ArrayIndexOutOfBoundsException e)
catch() 括號內只會接收子類別產生的物件,其他物件是不會接收的。
而這個 e 我們從上方的流程關係圖可以得知,
Throwable -> Exception -> RuntimeException
-> IndexOutOfBoundsException -> ArrayIndexOutOfBoundsException 所建立的物件。


於下篇將會談,那麼 catch() 括號內只接收一種類別,如何捕捉多個例外?


如果您喜歡我的文章,可以至 4xDevJava 學習系列閱讀更多 Java 文章。


上一篇
D17:[Java]例外處理 exception handing(範例實作)
下一篇
D19:[Java]例外類別 Throwable (捕捉多個例外)
系列文
我的語言自學接力31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言